The present invention relates to computer animation. More specifically, the present invention relates to methods and apparatus for accelerating aspects of computer animation including surface calculation, rendering, and the like.
Throughout the years, movie makers have often tried to tell stories involving make-believe creatures, far away places, and fantastic things. To do so, they have often relied on animation techniques to bring the make-believe to “life.” Two of the major paths in animation have traditionally included, drawing-based animation techniques and stop motion animation techniques.
Drawing-based animation techniques were refined in the twentieth century, by movie makers such as Walt Disney and used in movies such as “Snow White and the Seven Dwarfs” (1937) and “Fantasia” (1940). This animation technique typically required artists to hand-draw (or paint) animated images onto a transparent media or cels. After painting, each cel would then be captured or recorded onto film as one or more frames in a movie.
Stop motion-based animation techniques typically required the construction of miniature sets, props, and characters. The filmmakers would construct the sets, add props, and position the miniature characters in a pose. After the animator was happy with how everything was arranged, one or more frames of film would be taken of that specific arrangement. Stop motion animation techniques were developed by movie makers such as Willis O'Brien for movies such as “King Kong” (1933). Subsequently, these techniques were refined by animators such as Ray Harryhausen for movies including “Mighty Joe Young” (1948) and Clash Of The Titans (1981).
With the wide-spread availability of computers in the later part of the twentieth century, animators began to rely upon computers to assist in the animation process. This included using computers to facilitate drawing-based animation, for example, by painting images, by generating in-between images (“tweening”), and the like. This also included using computers to augment stop motion animation techniques. For example, physical models could be represented by virtual models in computer memory, and manipulated.
One of the pioneering companies in the computer-aided animation (CA) industry was Pixar. Pixar is more widely known as Pixar Animation Studios, the creators of animated features such as “Toy Story” (1995) and “Toy Story 2” (1999), “A Bugs Life” (1998), “Monsters, Inc.” (2001), “Finding Nemo” (2003), “The Incredibles” (2004), “Cars” (2006) and others. In addition to creating animated features, Pixar developed computing platforms specially designed for CA, and CA software now known as RenderMan®. RenderMan® was particularly well received in the animation industry and recognized with two Academy Awards®. The RenderMan® software included a “rendering engine” that “rendered” or converted geometric and/or mathematical descriptions of objects into a two dimensional image.
The definition of geometric object and/or illumination object descriptions has typically been a time consuming process, accordingly, statistical models have been used to represent such objects. The use of statistical models for calculations in graphics have included the creation of a kinematic articulation model which is trained from poses which can be generated from either physical simulations or hand corrected posed models. Approaches have been based on a pose based interpolation scheme in animation variables or based upon approximation on multiple coefficient weighting of the positions of points in various skeletal articulation frames. Such approaches do not require the posing of key points, a limitation that precludes the use of models depending upon history based simulation for posing.
Drawbacks to kinematic articulation schemes are related to their generality—the required training sets for such techniques can be very large. Additionally, in practice, it is essentially impossible to place bounds on the errors of the reconstructions when new poses are specified which are far from those included in the training set of poses.
Some techniques for real time deformation of a character surface have used a principal component analysis of joint angles to compute a basis for surface displacements resulting from perturbing each joints of a model in example poses. Given several example poses consisting of joint angles and surface displacements, specific joint angle values can be associated with coordinates in the basis space by projecting the surface displacement into the basis. Surface displacements for novel joint angle configurations are thus computed by using the joint angles to interpolate the basis coordinates, and the resulting coordinates determine surface a displacement represented in the subspace formed by the basis.
Some techniques for accelerating computation of illumination in a scene have also relied upon principle component analysis to compute a basis for global illumination resulting from illumination sources in a scene. Based upon the computed basis, the illumination from a novel lighting position can be computed by using the light position to interpolate subspace coordinates of nearby example lights.
Drawbacks to use of principle component analysis for animation, described above, include that they such analyses rely upon use of animation variables such as joint angles or light positions to drive a subspace model.
FIG. 1A illustrates a schematic block diagram of a general statistical modeling approach. In this general approach, a statistical model 10 is first determined to accept the animation variables 20 (posing controls, light positions and properties). Subsequently, the statistical model 10 produces the desired outputs 30 (point positions or illumination values).
Problems with this most general approach includes that the relationships between the input controls (animation variables 20) and the outputs 30 can be highly nonlinear. As an example, it is common to use an articulation variable to set either sensitivity or pivot point of another variable, thus the behavior may often be extremely nonlinear. Accordingly, it is essentially impossible to statistically discover a useful basis from typical training sets.
Accordingly, what is desired are improved methods and apparatus for solving the problems discussed above, while reducing the drawbacks discussed above.